English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base di C++

Controllo di flusso C++

Funzioni in C++

Array & Stringa C++

Struttura dati C++

Classe & Oggetto C++

Puntatore in C++

Ereditarietà in C++

Tutorial STL di C++

Manuale di riferimento C++

Metodo di utilizzo e esempio dell'operatore [] della mappa C++

Map STL in C++

Mappa C++ Operatore []La funzione è utilizzata per utilizzare la chiave dataChiave valoreAccedere agli elementi della mappa.

È simile aat()Funzione. La differenza unica tra di loro è che, se la chiave acceduta non esiste nella mappa, viene lanciata un'eccezione; d'altro canto, se la chiave non esiste nella mappa, alloraoperator[]Inserisci la chiave nella map.

Sintassi

Considera il valore di chiavek, sintassi:

mapped_type& operator[](const key_type& k);  // Prima di C++ 11
mapped_type& operator[](const key_type& k);  // A partire da C++ 11
mapped_type& operator[](key_type&& k);  // A partire da C++ 11

Parametro

k: Chiave del valore dell'elemento map da accedere.

Valore di ritorno

Utilizza i valori di chiave per restituire un riferimento al valore dell'elemento map.

Esempio 1

Guardiamo un esempio semplice di accesso agli elementi.

#include <iostream>
#include <map>
using namespace std;
int main() 
{
  
   map<char, int> m = {
            { 'a', 1 },
            { 'b', 2 },
            { 'c', 3 },
            { 'd', 4 },
            { 'e', 5 },
            };
   cout << "La map contiene i seguenti elementi" << endl;
   cout << "m['a'] = " << m['a'] << endl;
   cout << "m['b'] = " << m['b'] << endl;
   cout << "m['c'] = " << m['c'] << endl;
   cout << "m['d'] = " << m['d'] << endl;
   cout << "m['e'] = " << m['e'] << endl;
   return 0;
}

Output:

La map contiene i seguenti elementi
m['a'] = 1
m['b'] = 2
m['c'] = 3
m['d'] = 4
m['e'] = 5

In questo caso, la funzione operator [] viene utilizzata per accedere agli elementi della map.

Esempio 2

Guardiamo un esempio semplice che utilizza i loro valori di chiave per aggiungere elementi.

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main ()
{
  map<int,string> mymap = {
                { 101, "" },
                { 102, "" },
                { 103, "" } };
  mymap[101] = "w3codebox"; 
  mymap[102] = ".";
  mymap[103] = "com";
  // Stampa il valore associato alla chiave 101, ovvero w3codebox
  cout << mymap[101]; 
  // Stampa il valore associato alla chiave 102, ovvero .
  cout << mymap[102];
  // Stampa il valore associato alla chiave 103, ovvero com
  cout << mymap[103];
  return 0;
}

Output:

oldtoolbag.com

Nel esempio sopra, operator [] è utilizzato per aggiungere elementi utilizzando la chiave associata dopo l'inizializzazione.

Esempio 3

Ecco un esempio semplice per aggiungere elementi utilizzando la chiave associata dopo l'inizializzazione.

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main ()
{
  map<int,string> mymap = {
                { 100, "Nikita"},
                { 200, "Deep" }};
                { 300, "Priya" },
                { 400, "Suman" },
                { 500, "Aman" }};
                
  cout << "L'elemento è:" << endl;
  for (auto& x: mymap) {
    	cout << x.first <<": " << x.second << '\n';
  }
  mymap[100] = "Nidhi"; //Modifica il valore associato alla chiave 100 a Nidhi
  mymap[300] = "Pinku"; //Modifica il valore associato alla chiave 300 a Pinku
  mymap[500] = "Arohi"; //Modifica il valore associato alla chiave 500 a Arohi
  
  
  cout << "\nL'elemento modificato è:" << endl;
  for (auto& x: mymap) {
    	cout << x.first <<": " << x.second << '\n';
  }
  
  return 0;
}

Output:

L'elemento è:
100: Nikita
200: Deep
300: Priya
400: Suman
500: Aman
L'elemento modificato è:
100: Nidhi
200: Deep
300: Pinku
400: Suman
500: Arohi

Nel esempio sopra, la funzione operator [] è utilizzata per modificare il valore associato alla chiave.

Esempio 4

Ecco un esempio semplice per distinguere operator [] e at().

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main ()
{
  map<char,string> mp = {
                { 'a',"Java"},
                { 'b', "C++" },
                { 'c', "Python" }};
            
    cout << endl << mp['a'];
    cout << endl << mp['b'];
    cout << endl << mp['c'];
    
     mp['d'] = "SQL";           
     cout << endl << mp['d'];
     
    try {
        mp.at('z'); 
          //Poiché la mappa non ha una chiave con valore 'z', viene lanciata un'eccezione       
    catch(const out_of_range &e) {
        cout << endl << "\nEccezione out_of_range " << e.what();
    }
return 0;
}

Output:

Java
C++
Python
SQL
Eccezione out_of_range map::at

Nel esempio sopra, quando utilizziamo la funzione at(), lancia l'eccezione out_of_range perché la mappa non ha una chiave con valore z, e quando utilizziamo operator [] per aggiungere un elemento con chiave valore 'd', perché non c'è una chiave con valore 'd' nella mappa, inserisce una coppia di chiave valore con chiave 'd' e valore 'SQL'.

Map STL in C++